## Описание

Цель: освоить принцип внедрения зависимостей на примере их загрузки из
декларативного описания и автоматического внедрения в контексты (песочницы)
загружаемых модулей.

## Файлы

* `framework.js` - небольшая часть фреймворка, необходимая для демонстрации DI
* `application.js` - компонент приложения, с которого начинается запуск кода
  внутри фреймворка, он зависит от `component2.js`, `component3.js` и от
  библиотек npm: "mkdirp" и "ncp", от глобального API `console` и глобальных
  функций работы с таймерами: `setTimeout` и `setInterval`
* `component1.js` - модуль, который зависит от встроенных библиотек ноды
  "console" и "util" и от библиотеки "colors" из репозитория npm
* `component2.js` - модуль, который зависит от встроенных "util", от "path" и
  от прикладного модуля `component1.js`
* `component3.js` - модуль, который не имеет внешних зависимостей

## Запуск

До запуска нужно установить зависимости, они описаны в `package.json`,
а установить их можно из командной строки набрав `npm install`.
Из командной строки можно набрать `node ./framework.js` или `node framework`.

## Задания

1. Все зависимости у нас смешаны в `api.`, например, `api.util` и
'api.component1'
